Техническое задание вы прочли, самое время приступать. Заказчик ждёт результата!
Итак, ваша задача — реализовать модуль фитнес-трекера, который будет:
- получать и проверять входящие пакеты данных вида
package = (<time>, <steps>)— например,package = ('9:36:02', 15000); - сохранять и обрабатывать эти данные в модуле;
- выводить в терминал сводку за период с начала суток до времени, переданного в пакете данных в формате:
Время: <time из полученного пакета данных>. Количество шагов за сегодня: <сумма шагов, сделанных с начала текущих суток>. Дистанция составила <сумма шагов с начала текущих суток, конвертированная в км> км. Вы сожгли <количество килокалорий, истраченных с начала текущих суток> ккал. <Мотивирующее сообщение в зависимости от результатов> - возвращать сохранённые данные для обработки в других приложениях.
Подсказка
- В функциях
check_correct_data(data)иcheck_correct_time(time)пригодятся знания о ветвлении и логических операторах. - В функции
get_step_day(steps)понадобится перебрать последовательность циклом или через list comprehensions; функция должна вернуть общее количество шагов за текущие сутки. - В функции
get_distance(steps)пересчитайте шаги в километры. Это арифметика, серьёзное дело. Функция должна вернуть дистанцию в километрах. - Функция
get_spent_calories(dist, current_time)должна вычислять и возвращать количество килокалорий, истраченных за текущие сутки. Этот расчёт вы уже выполняли, перенесите свой код в эту функцию. - Функцию
show_message()вам предстоит написать полностью. На вход эта функция должна получать все значения, которые требуются для вывода информационного сообщения:(время обращения, количество шагов, дистанцию, потраченные калории, достижение). На основе этих значений функция должна создать сообщение и напечатать его в терминале.
Код
xxxxxxxxxx147
93
accept_package(package_4)1
# Импортируйте необходимые модули2
3
FORMAT = # Запишите формат полученного времени.4
WEIGHT = 75 # Вес.5
HEIGHT = 175 # Рост.6
K_1 = 0.035 # Коэффициент для подсчета калорий.7
K_2 = 0.029 # Коэффициент для подсчета калорий.8
STEP_M = 0.65 # Длина шага в метрах.9
10
storage_data = {} # Словарь для хранения полученных данных.11
12
13
def check_correct_data(data):14
"""Проверка корректности полученного пакета."""15
# Если длина пакета отлична от 216
# или один из элементов пакета имеет пустое значение -17
# функция вернет False, иначе - True.18
19
20
def check_correct_time(time):21
"""Проверка корректности параметра времени."""22
# Если словарь для хранения не пустой23
# и значение времени, полученное в аргументе,24
# меньше или равно самому большому значению ключа в словаре,25
# функция вернет False.26
# Иначе - True 27
28
29
def get_step_day(steps):30
"""Получить количество пройденных шагов за этот день."""31
# Посчитайте все шаги, записанные в словарь storage_data,32
# прибавьте к ним значение из последнего пакета33
# и верните эту сумму.34
35
36
def get_distance(steps):37
"""Получить дистанцию пройденного пути в км."""38
# Посчитайте дистанцию в километрах,39
# исходя из количества шагов и длины шага.40
41
42
def get_spent_calories(dist, current_time):43
"""Получить значения потраченных калорий."""44
# В уроке «Последовательности» вы написали формулу расчета калорий.